public class mingling {
    //    要求：输出1~20000内的所有素数，按每行5个打印出来，
    //    并分析程序中最费时的函数是什么， 如何改进？
        public static void main(String[] args) {
            int count = 0;
            for (int i = 2; i <= 20000; i++) {
                if (isPrime(i)) {
                    System.out.print(i + " ");
                    count++;
                    if (count % 5 == 0) {
                        System.out.println();
                    }
                }
            }
        }

        private static boolean isPrime(int num) {
            for (int j = 2; j <= (int) Math.sqrt(num); j++) {
                if (num % j == 0) {
                    return false;
                }
            }
            return true;
        }
//    只需检查到 sqrt(num) 即可。
//    如果一个数 num 有一个因子大于其平方根，
//    那么它必然还有一个小于或等于其平方根的因子。
//    因此，检查到 sqrt(num) 就足够了。
//    使用 Math.sqrt(num) 来获取 num 的平方根，
//    并将循环的上限设置为 (int)Math.sqrt(num) + 1。

    }

